/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package interfaces;

import datos.Administrador;
import datos.Coordinador;
import negocios.WGestorEmergenciaInicial;
import negocios.GestorNotificadores;
import negocios.GestorRegistroIncidente;
import negocios.GestorUsuarios;
import negocios.GestorRegistroLlamadas;
import datos.Operador;
import datos.ResponsableEntidad;
import java.awt.BorderLayout;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import negocios.GestorEmergencia;

/**
 *
 * @author miguesaca
 */
public class Ventana extends javax.swing.JFrame {

    /**
     * Creates new form Ventana
     */
    private Panel_Inicio panel_Inicio;
    private Panel_CallCenter panel_CallCenter;
    private Panel_SOS panel_SOS;
    private Panel_Gestion panel_Gestion;
    private Panel_Login panel_Login;
    private GestorUsuarios<Operador> gestorOperadoras;
    private GestorUsuarios<Coordinador> gestorCoordinadores;
    private GestorUsuarios<Administrador> gestorAdministradores;
    private GestorUsuarios<ResponsableEntidad> gestorResponsableEntidad;
    private GestorRegistroLlamadas gestorRegistroLlamadas;
    private GestorEmergencia gestorEmergencia;
    private GestorRegistroIncidente gestorResgistroIncidente;
    private GestorNotificadores gestorNotificadores;

    public Ventana() throws SQLException {
        initComponents();
        setLocationRelativeTo(null);
        inicio();
    }
/////  TEMPORALMENTE SOLO EN LA RAM
//    Operador operador1 = new Operador("OPER Mig", "001", "0302209374", "Miguel", "Saca", "0967453412", "Uncovia");
//    Operador operador2 = new Operador("OPER Lui", "002", "0302209375", "Luis", "Guaman", "0956362415", "Trigales");
//    Coordinador coordinador1 = new Coordinador("COOR Pab", "003", "0302209376", "Pablo", "Contreras", "0964592834", "Miraflores");
//    Coordinador coordinador2 = new Coordinador("COOR Alb", "004", "0302209377", "Alberto", "Sinchi", "0943971237", "Ricaute");
//    Administrador administrador1 = new Administrador("ADMT And", "005", "0302209378", "Andres", "Andrade", "0964569253", "Misicata");
//    Administrador administrador2 = new Administrador("ADMT Her", "006", "0302209379", "Andres", "Andrade", "0964569253", "Misicata");
//    ResponsableEntidad responsableEntidad1 = new ResponsableEntidad("RENT And", "007", "0302209380", "Andres", "Andrade", "0964569253", "Misicata");
//    ResponsableEntidad responsableEntidad2 = new ResponsableEntidad("RENT Her", "008", "0302209381", "Andres", "Andrade", "0964569253", "Misicata");

    public void inicio() throws SQLException {
        gestorOperadoras = new GestorUsuarios<Operador>(new Operador());
        gestorCoordinadores = new GestorUsuarios<Coordinador>(new Coordinador());
        gestorAdministradores = new GestorUsuarios<Administrador>(new Administrador());
        gestorResponsableEntidad = new GestorUsuarios<ResponsableEntidad>(new ResponsableEntidad());

        gestorNotificadores = new GestorNotificadores();

        gestorRegistroLlamadas = new GestorRegistroLlamadas();
        gestorEmergencia = new GestorEmergencia();
        gestorResgistroIncidente = new GestorRegistroIncidente();


        panel_Inicio = new Panel_Inicio();
        panel_CallCenter = new Panel_CallCenter(this);
        panel_SOS = new Panel_SOS(this);
        panel_Gestion = new Panel_Gestion();
        panel_Login = new Panel_Login(this);

        actualizar("Operador");
        panel_Inicio.setPanel_Center(panel_CallCenter);
        panel_Inicio.setPanel_SOS(panel_SOS);
        panel_Inicio.setPanel_Gestion(panel_Gestion);
        panel_Inicio.setPanel_Login(panel_Login);//////////////

        panel_Escritorio.setLayout(new BorderLayout());
        panel_Escritorio.add(panel_Inicio, BorderLayout.WEST);
        panel_Escritorio.add(panel_Login, BorderLayout.CENTER);//////////
        panel_Inicio.setPanel_Escritorio(panel_Escritorio);

        panel_CallCenter.setVisible(false);
        panel_SOS.setVisible(false);
        panel_Gestion.setVisible(false);
    }

    public void actualizar(String opc) {
        if (opc.equalsIgnoreCase("Operador")) {
            panel_CallCenter.getTabla_Listado(gestorOperadoras.tablaModelo());
        } else if (opc.equalsIgnoreCase("Coordinador")) {
            panel_CallCenter.getTabla_Listado(gestorCoordinadores.tablaModelo());
        } else if (opc.equalsIgnoreCase("Administrador")) {
            panel_CallCenter.getTabla_Listado(gestorAdministradores.tablaModelo());
        } else if (opc.equalsIgnoreCase("ResponsableEntidad")) {
            panel_CallCenter.getTabla_Listado(gestorResponsableEntidad.tablaModelo());
        }
        panel_SOS.getTabla_Notificador(gestorNotificadores.tablaModelo());
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        panel_Escritorio = new Panel_Escritorio();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setResizable(false);

        panel_Escritorio.setBackground(new java.awt.Color(48, 52, 53));

        javax.swing.GroupLayout panel_EscritorioLayout = new javax.swing.GroupLayout(panel_Escritorio);
        panel_Escritorio.setLayout(panel_EscritorioLayout);
        panel_EscritorioLayout.setHorizontalGroup(
            panel_EscritorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 901, Short.MAX_VALUE)
        );
        panel_EscritorioLayout.setVerticalGroup(
            panel_EscritorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 500, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(panel_Escritorio, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(panel_Escritorio, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    public GestorUsuarios<Operador> getGestorOperadoras() {
        return gestorOperadoras;
    }

    public void setGestorOperadoras(GestorUsuarios<Operador> gestorOperadoras) {
        this.gestorOperadoras = gestorOperadoras;
    }

    public GestorUsuarios<Coordinador> getGestorCoordinadores() {
        return gestorCoordinadores;
    }

    public void setGestorCoordinadores(GestorUsuarios<Coordinador> gestorCoordinadores) {
        this.gestorCoordinadores = gestorCoordinadores;
    }

    public GestorUsuarios<Administrador> getGestorAdministradores() {
        return gestorAdministradores;
    }

    public void setGestorAdministradores(GestorUsuarios<Administrador> gestorAdministradores) {
        this.gestorAdministradores = gestorAdministradores;
    }

    public GestorUsuarios<ResponsableEntidad> getGestorResponsableEntidad() {
        return gestorResponsableEntidad;
    }

    public void setGestorResponsableEntidad(GestorUsuarios<ResponsableEntidad> gestorResponsableEntidad) {
        this.gestorResponsableEntidad = gestorResponsableEntidad;
    }

    public GestorNotificadores getGestorNotificadores() {
        return gestorNotificadores;
    }

    public void setGestorNotificadores(GestorNotificadores gestorNotificadores) {
        this.gestorNotificadores = gestorNotificadores;
    }

    public GestorRegistroLlamadas getGestorRegistroLlamadas() {
        return gestorRegistroLlamadas;
    }

    public void setGestorRegistroLlamadas(GestorRegistroLlamadas gestorRegistroLlamadas) {
        this.gestorRegistroLlamadas = gestorRegistroLlamadas;
    }

    public GestorEmergencia getGestorEmergencia() {
        return gestorEmergencia;
    }

    public void setGestorEmergencia(GestorEmergencia gestorEmergencia) {
        this.gestorEmergencia = gestorEmergencia;
    }

    public Panel_Login getPanel_Login() {
        return panel_Login;
    }

    public void setPanel_Login(Panel_Login panel_Login) {
        this.panel_Login = panel_Login;
    }

    public GestorRegistroIncidente getGestorResgistroIncidente() {
        return gestorResgistroIncidente;
    }

    public void setGestorResgistroIncidente(GestorRegistroIncidente gestorResgistroIncidente) {
        this.gestorResgistroIncidente = gestorResgistroIncidente;
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("MacOSX".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Ventana.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Ventana.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Ventana.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Ventana.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    new Ventana().setVisible(true);
                } catch (SQLException ex) {
                    Logger.getLogger(Ventana.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel panel_Escritorio;
    // End of variables declaration//GEN-END:variables
}
